package com.example.jasonrpc.client;

import com.example.jasonrpc.codec.Decoder;
import com.example.jasonrpc.codec.Encoder;
import com.example.jasonrpc.registry.RegistryDirectory;
import com.example.jasonrpc.transport.TransportClient;

import java.util.List;

public class ClientConfig {
    protected Class<? extends TransportClient> transportClientClass;
    protected Class<? extends Encoder> encoderClass;
    protected Class<? extends Decoder> decoderClass;
    protected Class<? extends TransportSelector> selectorClass;
    protected int connectCount;
    protected List<RegistryDirectory> directories;

    public Class<? extends TransportClient> getTransportClientClass() {
        return transportClientClass;
    }

    public void setTransportClientClass(Class<? extends TransportClient> transportClientClass) {
        this.transportClientClass = transportClientClass;
    }

    public Class<? extends Encoder> getEncoderClass() {
        return encoderClass;
    }

    public void setEncoderClass(Class<? extends Encoder> encoderClass) {
        this.encoderClass = encoderClass;
    }

    public Class<? extends Decoder> getDecoderClass() {
        return decoderClass;
    }

    public void setDecoderClass(Class<? extends Decoder> decoderClass) {
        this.decoderClass = decoderClass;
    }

    public Class<? extends TransportSelector> getSelectorClass() {
        return selectorClass;
    }

    public void setSelectorClass(Class<? extends TransportSelector> selectorClass) {
        this.selectorClass = selectorClass;
    }

    public int getConnectCount() {
        return connectCount;
    }

    public void setConnectCount(int connectCount) {
        this.connectCount = connectCount;
    }

    public List<RegistryDirectory> getDirectories() {
        return directories;
    }

    public void setDirectories(List<RegistryDirectory> directories) {
        this.directories = directories;
    }
}
